using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Koala.KoalaWebControls;
using FEL.BOD;
using System.Globalization;
using System.Web.Services;
using System.Collections.Generic;

public partial class BOD_BOD_TRANSFERENCIA_DESPACHO_DET : PaginaBaseKCG
{
    public Bod_Transferencia_Despacho_Det Bod_Tranferencia_Despacho_Actual
    {
        get
        {
            if (ViewState["BOD_TRANSFERENCIA_DESPACHO_DET"] == null)
                ViewState["BOD_TRANSFERENCIA_DESPACHO_DET"] = ObtenerBodTransferenciaDespacho();
            return (Bod_Transferencia_Despacho_Det)ViewState["BOD_TRANSFERENCIA_DESPACHO_DET"];
        }
    }

    Bod_Transferencia_Despacho_Det ObtenerBodTransferenciaDespacho()
    {
        FEL.BOD.BO_Bod_Transferencia_Despacho_Det datos = new BO_Bod_Transferencia_Despacho_Det();
        List<Bod_Transferencia_Despacho_Det> lstBod =
            datos.GetByDespacho("", (Scope) Session["Scope"], Request.QueryString["Bod_Transferencia_Despacho_Id"]);
        return (lstBod.Count==1)? lstBod[0]  : new Bod_Transferencia_Despacho_Det(); 
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        base.Page_Load(sender, e);
        EtiquetarBotones();
        Fv.DataBound += new EventHandler(Fv_DataBoundDatosIniciales);
    }

   
    
    protected override CheckBox CbInsertarMemoria
    {
        get { return null; }
    }

    protected override Type TipoObjeto
    {
        get { return typeof(global::Bod_Transferencia_Despacho_Det); }
    }

    protected override GridView Gv
    {
        get { return gvBodTransferenciaDespachoDet; }
    }

    protected override FormView Fv
    {
        get { return fvBodTransferenciaDespachoDet; }
    }

    protected override ObjectDataSource OdsGv
    {
        get { return odsgvBodTransferenciaDespachoDet; }
    }

    protected override ObjectDataSource OdsDv
    {
        get { return odsfvBodTransferenciaDespachoDet; }
    }

    protected override Button BResponderZoom
    {
        get { return Seleccionar; }
    }

    protected override Button BRegreso
    {
        get { return Atras; }
    }

    protected override KFiltro KftFiltro
    {
        get { return kftFiltro; }
    }

    protected override string Contenedor
    {
        get { return "BOD_TRANSFERENCIA_DESPACHO_DET"; }
    }

    protected void nav_Siguiente(object sender, EventArgs e)
    {
        Gv_SelectedIndexChanged(sender, e);
    }

    protected override void DefinirParametrosFijosDeInsercion(System.Collections.Generic.List<DictionaryEntry> param)
    {
        if (Request.QueryString.Count > 0)
        {
            param.Add(new DictionaryEntry("Bod_Transferencia_Despacho_Id", Request.QueryString["Bod_Transferencia_Despacho_Id"]));
            param.Add(new DictionaryEntry("Bod_Transferencia_Despacho_Codigo", Bod_Tranferencia_Despacho_Actual.Bod_Transferencia_Despacho_Codigo));
            param.Add(new DictionaryEntry("Bod_Transferencia_Despacho_Fecha", Bod_Tranferencia_Despacho_Actual.Bod_Transferencia_Despacho_Fecha));
            param.Add(new DictionaryEntry("Bod_Bodega_Codigo", Bod_Tranferencia_Despacho_Actual.Bod_Bodega_Codigo));
            param.Add(new DictionaryEntry("Bod_Bodega_Nombre", Bod_Tranferencia_Despacho_Actual.Bod_Bodega_Nombre));
            param.Add(new DictionaryEntry("Destino_Bod_Bodega_Codigo", Bod_Tranferencia_Despacho_Actual.Destino_Bod_Bodega_Codigo));
            param.Add(new DictionaryEntry("Destino_Bod_Bodega_Nombre", Bod_Tranferencia_Despacho_Actual.Destino_Bod_Bodega_Nombre));
            param.Add(new DictionaryEntry("Bod_Transferencia_Id", Bod_Tranferencia_Despacho_Actual.Bod_Transferencia_Id));
        }
        base.DefinirParametrosFijosDeInsercion(param);
    }

    private void EtiquetarBotones()
    {
        Btn_Bod_Transferencia_Despacho_Det_Despacho.Text = GetLocalResourceObject("Btn_Bod_Transferencia_Despacho_Det_DespachoRecursoKCG.Text").ToString();
        Btn_Bod_Transferencia_Despacho_Det_Despacho.ToolTip = GetLocalResourceObject("Btn_Bod_Transferencia_Despacho_Det_DespachoRecursoKCG.ToolTip").ToString();
    }

    void Fv_DataBoundDatosIniciales(object sender, EventArgs e)
    {
        if (Fv.CurrentMode == FormViewMode.Insert)
        {
            TextBox cantidad = (TextBox)Fv.FindControl("Cantidad");
            if (cantidad.Text == string.Empty)
                cantidad.Text = 1.ToString("N2", NumberFormatInfo.CurrentInfo);
        }  
    }
    protected void Btn_Bod_Transferencia_Despacho_Det_Despacho_Click(object sender, EventArgs e)
    {
        TextBox DespachoId = (TextBox)Fv.FindControl("Bod_Transferencia_Id");
        Response.Redirect("~/BOD/BOD_TRANSFERENCIA_DESPACHO.aspx?Bod_Transferencia_Id=" + DespachoId.Text);
    }

    [WebMethod]
    static public string[] GetCodigoArticulo(string prefixText, int count, string contextKey)
    {
        if (count == 0) count = 10;

        Scope s = (Scope)HttpContext.Current.Session["Scope"];

        FEL.BOD.BO_Bod_Transferencia_Det boBodCodArticulo = new BO_Bod_Transferencia_Det();
        List<Bod_Transferencia_Det> litBodCodArticulo = boBodCodArticulo.GetByLikeCodigoArticulo("Nombre", s, contextKey, prefixText + "%");

        List<string> opciones = new List<string>();
        for (int i = 0; i < litBodCodArticulo.Count && i < count; i++)
        {
            string value = litBodCodArticulo[i].Id + "||" +
                           litBodCodArticulo[i].Com_Articulo_Id + "||" +                           
                           litBodCodArticulo[i].Com_Articulo_Nombre + "||" +
                           litBodCodArticulo[i].Bod_Unidad_Nombre + "||" +
                           litBodCodArticulo[i].Bod_Unidad_Codigo + "||" +
                           litBodCodArticulo[i].Bod_Unidad_Id + "||" +
                           litBodCodArticulo[i].Cantidad_Referencia;

            opciones.Add(AjaxControlToolkit.AutoCompleteExtender.CreateAutoCompleteItem(litBodCodArticulo[i].Com_Articulo_Codigo, value));
        }
        return opciones.ToArray();
    }

    [WebMethod]
    static public string[] GetNombreArticulo(string prefixText, int count, string contextKey)
    {
        if (count == 0) count = 10;

        Scope s = (Scope)HttpContext.Current.Session["Scope"];

        FEL.BOD.BO_Bod_Transferencia_Det boBodNomArticulo = new BO_Bod_Transferencia_Det();
        List<Bod_Transferencia_Det> litBodNomArticulo = boBodNomArticulo.GetByLikeNombreArticulo("Nombre", s, contextKey, prefixText + "%");

        List<string> opciones = new List<string>();
        for (int i = 0; i < litBodNomArticulo.Count && i < count; i++)
        {
            string value = litBodNomArticulo[i].Id + "||" +                           
                           litBodNomArticulo[i].Com_Articulo_Id + "||" +
                           litBodNomArticulo[i].Com_Articulo_Codigo + "||" +
                           litBodNomArticulo[i].Bod_Unidad_Nombre + "||" +
                           litBodNomArticulo[i].Bod_Unidad_Codigo + "||" +
                           litBodNomArticulo[i].Bod_Unidad_Id + "||" +
                           litBodNomArticulo[i].Cantidad_Referencia;

            opciones.Add(AjaxControlToolkit.AutoCompleteExtender.CreateAutoCompleteItem(litBodNomArticulo[i].Com_Articulo_Nombre, value));
        }
        return opciones.ToArray();
    }

    [WebMethod]
    static public string[] GetUnidad(string prefixText, int count, string contextKey)
    {
        if (count == 0) count = 10;

        Scope s = (Scope)HttpContext.Current.Session["Scope"];

        FEL.BOD.BO_Bod_Unidad boBodUnidad = new BO_Bod_Unidad();
        List<Bod_Unidad> litBodUnidad = boBodUnidad.GetByLikeArticulo("Nombre", s, prefixText + "%", contextKey);

        List<string> opciones = new List<string>();
        for (int i = 0; i < litBodUnidad.Count && i < count; i++)
        {
            string value = litBodUnidad[i].Id + "||" +
                           litBodUnidad[i].Codigo;

            opciones.Add(AjaxControlToolkit.AutoCompleteExtender.CreateAutoCompleteItem(litBodUnidad[i].Nombre, value));
        }
        return opciones.ToArray();
    }

}
